package editorsvg.gui.generico;

import javax.swing.tree.TreePath;

/**
 * Contrato que cumplen los comparadores de nodos de arboles.
 * @author Jorge Berjano
 */
public interface Comparador {
    boolean comparar(TreePath path);
    
    public class ComparadorObjeto implements Comparador {
        public Object objeto;
        
        public ComparadorObjeto(Object objeto) {
            this.objeto = objeto;
        }
        
        public boolean comparar(TreePath path) {
            if (path == null) {
                return false;
            }
            Object objetoArbol = path.getLastPathComponent();
            return objeto.equals(objetoArbol);
        }
    }
    
    public class ComparadorContieneTexto implements Comparador {
        public String texto;
        public ComparadorContieneTexto(String texto) {
            this.texto = texto.toLowerCase();
        }
        public boolean comparar(TreePath path) {
            Object objetoArbol = path.getLastPathComponent();
            String textoObjetoArbol = objetoArbol.toString().toLowerCase();
            return textoObjetoArbol.indexOf(texto) >= 0;
        }        
    }
    
}
